//
// Created by cljh on 2023/3/28.
//

#ifndef BIN_PACKING_NESTCONFIG_H
#define BIN_PACKING_NESTCONFIG_H


class NestConfig{
public:
    // GA
    int POPULATION_SIZE;
    double MUTATION_RATE;//百分制变异率
    int ANGLE_SCALE;//旋转角度 设置为2，意味着可以旋转0，180； 4即可以旋转0，90，180，270
    int MAX_LOOP;

    // SA
    double T_0; // 初始温度
    double ALPHA; // 降温系数
    double END_TEMP; // 结束温度
    int MAX_OUTER_ITERATION; // 总迭代次数
    int MAX_INNER_ITERATION; // 每个温度下的最大抽样次数

    double INFLATE_DELTA;  // 裁片的扩张（缩小）系数
    double TOLERANCE; // 简化裁片时所用，移除距离 相邻的两个顶点所连直线 小于指定阈值tolerance的顶点

    NestConfig(){
        POPULATION_SIZE=10;
        MUTATION_RATE=0.2;
        ANGLE_SCALE=4;
        MAX_LOOP=10;
        T_0 = 100.0; // 初始温度
        ALPHA = 0.9; // 降温系数
        END_TEMP = 5.0; // 结束温度
        MAX_OUTER_ITERATION= 100; // 总迭代次数
        MAX_INNER_ITERATION = 50; // 每个温度下的最大抽样次数
        INFLATE_DELTA = 0.0;
        TOLERANCE = 0.0;
    }

};


#endif //BIN_PACKING_NESTCONFIG_H
